#pragma once
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <Eigen/Dense>
#include <map>

using namespace std;
using namespace Eigen;
typedef map<string,int> vmap;
typedef map<int,string> vmap_vers;

class PSCAD_br_info
{
public:
    string path;
    MatrixXi branchesData;
    MatrixXi A;
    vmap Vmap;
    vmap_vers Vmap_vers;


    int num_node, num_br;

    PSCAD_br_info(const char* path) { this->path = path; }

    int read();
    int generate_A();
    MatrixXi get_A()
    {
        generate_A();
        return A;
    };
    vmap get_Vmap()
    {
        return Vmap;
    };
    int get_num_node()
    {
        return num_node;
    }
    int get_num_br()
    {
        return num_br;
    }
};